home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / nethack.lha / nethack-3.1 / include / vision.h < prev    next >
C/C++ Source or Header  |  1992-11-15  |  2KB  |  50 lines

  1. /*    SCCS Id: @(#)vision.h    3.1    92/11/14    */
  2. /* Copyright (c) Dean Luick, with acknowledgements to Dave Cohrs, 1990.    */
  3. /* NetHack may be freely redistributed.  See license for details.    */
  4.  
  5. #ifndef VISION_H
  6. #define VISION_H
  7.  
  8. #if 0    /* (moved to decl.h) */
  9. extern boolean vision_full_recalc;    /* TRUE if need vision recalc */
  10. extern char **viz_array;        /* could see/in sight row pointers */
  11. extern char *viz_rmin;            /* min could see indices */
  12. extern char *viz_rmax;            /* max could see indices */
  13. #endif
  14. #define COULD_SEE 0x1
  15. #define IN_SIGHT 0x2
  16.  
  17. /*
  18.  *  cansee()    - Returns true if the hero can see the location.
  19.  *
  20.  *  couldsee()    - Returns true if the hero has a clear line of sight to
  21.  *          the location.
  22.  */
  23. #define cansee(x,y)    (viz_array[y][x] & IN_SIGHT)
  24. #define couldsee(x,y)    (viz_array[y][x] & COULD_SEE)
  25.  
  26. /*
  27.  *  The following assume the monster is not blind.
  28.  *
  29.  *  m_cansee()    - Returns true if the monster can see the given location.
  30.  *
  31.  *  m_canseeu()    - Returns true if the monster could see the hero.  Assumes
  32.  *          that if the hero has a clear line of sight to the monster's
  33.  *          location and the hero is visible, then monster can see the
  34.  *          hero.
  35.  */
  36. #define m_cansee(mtmp,x2,y2)    clear_path((mtmp)->mx,(mtmp)->my,(x2),(y2))
  37.  
  38. #define m_canseeu(m)        ((!Invis || perceives((m)->data)) && !Underwater ? \
  39.                      couldsee((m)->mx,(m)->my) : 0)
  40.  
  41. /*
  42.  *  Circle information
  43.  */
  44. #define MAX_RADIUS 15    /* this is in points from the source */
  45.  
  46. /* Use this macro to get a list of distances of the edges (see vision.c). */
  47. #define circle_ptr(z) (&circle_data[circle_start[z]])
  48.  
  49. #endif /* VISION_H */
  50.